#ifndef _CONTAINER_COMPARE_H_
#define _CONTAINER_COMPARE_H_

#include "./stl_util_define.h"

namespace Container {

	using namespace std;

	/*!
		operator for comparing objects in a vector
		\param set1 a container
		\param set2 container to compare with set1
		\return if all objects are equals
		\code
		vector<int> set1;
		set1, 1, 2, 3, 4;
		vector<int> set2;
		set2, 1, 2, 3;
		cout << (set1 == set2) << endl; // prints 0
		\endcode
	*/
	template <class Tipo>
		inline bool operator == ( const vector<Tipo> &set1, const vector<Tipo> &set2 ) {
			if( set1.size() != set2.size() ) return false;
			for( usint i = 0; i < set1.size(); ++i )
				if( set1[i] != set2[i] ) return false;
			return true;
		};

	/*!
		operator for comparing objects in a deque
		\param set1 a container
		\param set2 container to compare with set1
		\return if all objects are equals
		\code
		deque<int> set1;
		set1, 1, 2, 3, 4;
		vector<int> set2;
		set2, 1, 2, 3;
		cout << (set1 == set2) << endl; // prints 0
		\endcode
	*/
	template <class Tipo>
		inline bool operator == ( const deque<Tipo> &set1, const deque<Tipo> &set2 ) {
			if( set1.size() != set2.size() ) return false;
			for( usint i = 0; i < set1.size(); ++i )
				if( set1[i] != set2[i] ) return false;
			return true;
		};

};

#endif // _CONTAINER_COMPARE_H_
